/**
 * 是否是数字
 * @param {Number} num
 */
export function isNumber(num) {
  return Object.prototype.toString.call(num) === '[object Number]'
}

/**
 * 是否是字符串
 * @param {String} str
 */
export function isString(str) {
  return Object.prototype.toString.call(str) === '[object String]'
}

export function isBoolean(bool) {
  return Object.prototype.toString.call(bool) === '[object Boolean]'
}

/**
 * 是否是字符串
 * @param {Object} obj
 */
export function isObject(obj) {
  return Object.prototype.toString.call(obj) === '[object Object]'
}

/**
 * 是否是数组
 * @param {Array} arr
 */
export function isArray(arr) {
  return Object.prototype.toString.call(arr) === '[object Array]'
}

/**
 * 是否是时间对象
 * @param {Date} date
 */
export function isDate(date) {
  return Object.prototype.toString.call(date) === '[object Date]'
}

/**
 * 是否是函数
 * @param {Function} fn
 */
export function isFunction(fn) {
  return Object.prototype.toString.call(fn) === '[object Function]'
}

/**
 * 是否是undefined
 */
export function isUndefined(un) {
  return Object.prototype.toString.call(un) === '[object Undefined]'
}

/**
 * 是否为null
 */
export function isNull(nu) {
  return Object.prototype.toString.call(nu) === '[object Null]'
}

/**
 * 是否是json字符串
 * @param {String} str
 */
export function isJSON(str) {
  if (typeof str === 'string') {
    try {
      JSON.parse(str)
      return true
    } catch (e) {
      return false
    }
  }
  return false
}

/**
 * 获取数据的类型
 */
export function getTypeOfData(obj) {
  if (typeof obj !== 'object') {
    return typeof obj
  } else {
    return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]/, '$1')
  }
}
